"""
Semantic RAG package for Python.

A package that provides semantic search capabilities using embeddings and vector stores,
extracted from the codebase-rag-mcp TypeScript implementation.
"""

__version__ = "0.1.0"

# Import main classes and functions
from .config import (
    SemanticRagConfig,
    EmbedderConfig, 
    VectorStoreConfig,
    get_config,
    set_config,
)

from .embedders import (
    IEmbedder,
    EmbeddingResponse,
    EmbedderInfo,
    DocumentType,
    TaskType,
    OpenAiEmbedder,
    OllamaEmbedder,
    EmbedderFactory,
)

from .vector_store import (
    QdrantVectorStore,
    PointStruct,
    Payload,
    VectorStoreSearchResult,
)

from .search import (
    SearchResult,
    CategorizedSearchResults,
    SemanticSearcher,
    semantic_search,
)

__all__ = [
    # Configuration
    "SemanticRagConfig",
    "EmbedderConfig",
    "VectorStoreConfig", 
    "get_config",
    "set_config",
    
    # Embedders
    "IEmbedder",
    "EmbeddingResponse",
    "EmbedderInfo",
    "DocumentType",
    "TaskType",
    "OpenAiEmbedder",
    "OllamaEmbedder",
    "EmbedderFactory",
    
    # Vector Store
    "QdrantVectorStore",
    "PointStruct",
    "Payload", 
    "VectorStoreSearchResult",
    
    # Search
    "SearchResult",
    "CategorizedSearchResults",
    "SemanticSearcher",
    "semantic_search",
]